home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 22.4 KB | 192 lines |
- 10 GOSUB 500:GOSUB 7760
- 20 CLS:PRINT:PRINT
- 30 PRINT TAB(21);STRING$(40,"*")
- 40 PRINT TAB(21);"*";TAB(60);"*"
- 50 PRINT TAB(21);"* SIMPLE GAS MODEL *"
- 60 PRINT TAB(21);"*";TAB(60);"*"
- 70 PRINT TAB(21);STRING$(40,"*")
- 80 PRINT:PRINT
- 90 PRINT TAB(17);"PLEASE SUPPLY THE FOLLOWING WEATHER INFORMATION:"
- 100 LOCATE 13,20,1:PRINT "DOES THE SPILL OCCUR AT DAY OR AT NIGHT?(D/N)":TIM$=INPUT$(1)
- 110 IF TIM$<>"N" AND TIM$<>"n" THEN 130
- 112 PRINT:PRINT TAB(24);"WHAT IS THE DEGREE OF CLOUD COVER?"
- 114 PRINT
- 116 PRINT TAB(28);" 1. 100%"
- 118 PRINT TAB(28);" 2. 50-99%"
- 120 PRINT TAB(28);" 3. <50%"
- 121 PRINT TAB(28);" 4. don't know"
- 122 PRINT
- 124 LOCATE 22,25:INPUT "PLEASE CHOOSE 1, 2, 3 OR 4 ===> ",CC
- 125 IF CC=1 OR CC=4 THEN DFLAG=1:GOTO 2000
- 126 IF CC=2 OR CC=3 THEN DFLAG=0:CC=CC-1:GOTO 2000 ELSE PRINT CHR$(7):GOTO 124
- 130 IF TIM$="D" OR TIM$="d" THEN 132 ELSE PRINT CHR$(7):GOTO 100
- 132 PRINT:PRINT TAB(24);"HOW INTENSE IS THE INCOMING SUNLIGHT?"
- 134 PRINT
- 136 PRINT TAB(24);" 1. strong"
- 138 PRINT TAB(24);" 2. moderate"
- 140 PRINT TAB(24);" 3. slight"
- 141 PRINT TAB(24);" 4. heavy overcast OR don't know"
- 142 PRINT
- 144 LOCATE 22,24:INPUT "PLEASE CHOOSE 1, 2, 3 OR 4 ===> ",IS
- 145 IF IS=4 THEN DFLAG=1:GOTO 2000
- 146 IF IS=1 OR IS=2 OR IS=3 THEN DFLAG=0:GOTO 2000 ELSE PRINT CHR$(7):GOTO 14
- 500 REM DEFINE HORIZONTAL FLUCTUATION (DAYTIME)
- 510 DIM SIGMATHD(5,3)
- 520 FOR I=1 TO 5:FOR J=1 TO 3
- 530 READ SIGMATHD(I,J)
- 540 NEXT J:NEXT I
- 550 DATA 0.22, 0.19, 0.17
- 560 DATA 0.19, 0.17, 0.13
- 570 DATA 0.17, 0.15, 0.13
- 580 DATA 0.13, 0.11, 0.09
- 590 DATA 0.13, 0.09, 0.09
- 600 REM DEFINE HORIZONTAL FLUCTUATION (NIGHTTIME)
- 610 DIM SIGMATHN(5,2)
- 620 FOR I=1 TO 5:FOR J=1 TO 2
- 630 READ SIGMATHN(I,J)
- 640 NEXT J:NEXT I
- 650 DATA 0.02, 0.02
- 660 DATA 0.045,0.02
- 670 DATA 0.09, 0.045
- 680 DATA 0.09, 0.09
- 690 DATA 0.09, 0.09
- 700 RETURN
- 1000 REM CALCULATING THE SIGMAS
- 1030 WS=DV(6)
- 1060 IF TIM$="N" OR TIM$="n" THEN 1200
- 1090 ' DAYTIME
- 1100 IF WS<2 THEN SD=SIGMATHD(1,IS):GOTO 1150
- 1110 IF WS<3 THEN SD=SIGMATHD(2,IS):GOTO 1150
- 1120 IF WS<5 THEN SD=SIGMATHD(3,IS):GOTO 1150
- 1130 IF WS<6 THEN SD=SIGMATHD(4,IS):GOTO 1150
- 1140 SD=SIGMATHD(5,IS)
- 1150 STHD=INT(SD*1000+0.5)/1000:SPHD=INT(SD/3*2000+0.5)/1000
- 1160 DV(10)=SD:IF ABS(SD-0.09)<0.000999999 THEN DF$(10)=".09" ELSE DF$(10)=MID$(STR$(STHD),2)
- 1170 DV(9)=SD*2/3:DF$(9)=MID$(STR$(SPHD),2)
- 1180 RETURN
- 1190 ' NIGHTTIME
- 1200 IF WS<2 THEN SN=SIGMATHN(1,CC):GOTO 1250
- 1210 IF WS<3 THEN SN=SIGMATHN(2,CC):GOTO 1250
- 1220 IF WS<5 THEN SN=SIGMATHN(3,CC):GOTO 1250
- 1230 IF WS<6 THEN SN=SIGMATHN(4,CC):GOTO 1250
- 1240 SN=SIGMATHN(5,CC)
- 1250 STHN=INT(SN*1000+0.5)/1000:SPHN=INT(SN/3*2000+0.5)/1000
- 1260 DV(10)=SN:IF ABS(SN-0.09)<0.000999999 THEN DF$(10)=".09" ELSE DF$(10)=MID$(STR$(STHN),2)
- 1270 DV(9)=SN*2/3:DF$(9)=MID$(STR$(SPHN),2)
- 1280 RETURN
- 2000 REM SIMPLE DISPERSION MODEL
- 2010 IF CON=1 THEN 2340
- 2020 IF INS=1 THEN 2620
- 2050 CLS
- 2060 PRINT: PRINT: PRINT
- 2070 PRINT TAB(21); STRING$(40,"*")
- 2080 PRINT TAB(21); "*"; TAB(60); "*"
- 2090 PRINT TAB(21); "* SIMPLE GAS MODEL *"
- 2100 PRINT TAB(21); "*"; TAB(60); "*"
- 2110 PRINT TAB(21); STRING$(40,"*")
- 2120 PRINT:PRINT
- 2130 MSG$(3)="CONCENTRATION:"
- 2140 MSG$(5)="DOWN WIND DISTANCE:"
- 2150 PRINT
- 2160 PRINT TAB(24); "1. Continuous Release Case"
- 2170 PRINT
- 2180 PRINT TAB(24); "2. Instantaneous Release Case"
- 2185 PRINT
- 2190 PRINT TAB(24); "3. Source Emission (Rate) Caln."
- 2195 PRINT
- 2200 PRINT TAB(24); "4. Quit (Exit to GAS SYSTEM MENU)"
- 2210 PRINT: PRINT: PRINT
- 2220 PRINT TAB(28); "SELECT =====>"
- 2230 PPR=22:PPC=43
- 2250 GOSUB 7000
- 2260 IF BF$="1" THEN 2340
- 2270 IF BF$="2" THEN 2620
- 2275 IF BF$="3" THEN CHAIN "SOURCE"
- 2280 IF BF$="4" THEN 7720
- 2290 PRINT CHR$(7);
- 2300 LOCATE 22,19
- 2310 PRINT "*** ILLEGAL SELECTION: TYPE 1, 2, 3 OR 4 ***"
- 2320 FOR I=1 TO 1500: NEXT I
- 2330 GOTO 2000
- 2340 REM *** CONTINUOUS MODEL MENU ***
- 2350 QRN=CALD
- 2355 IF QRN=1 THEN DV(1)=QV*1000:DF$(1)=MID$(STR$(DV(1)),2)
- 2360 CLS
- 2370 PRINT: PRINT: PRINT
- 2380 PRINT TAB(21); STRING$(40,"*")
- 2390 PRINT TAB(21); "*"; TAB(60); "*"
- 2400 PRINT TAB(21); "* CONTINUOUS RELEASE MODEL *"
- 2410 PRINT TAB(21); "*"; TAB(60); "*"
- 2420 PRINT TAB(21); STRING$(40,"*")
- 2430 PRINT: PRINT
- 2440 PRINT TAB(26); "1. Calculate Concentration.":PRINT
- 2450 PRINT TAB(26); "2. Calculate Emission Rate.":PRINT
- 2460 PRINT TAB(26); "3. Calculate Caution Distance.":PRINT
- 2470 PRINT TAB(26); "4. Quit (Exit to Simple Gas Menu).":PRINT
- 2480 PRINT: PRINT
- 2490 PRINT TAB(29); "SELECT =====>"
- 2500 PPR=21:PPC=44
- 2510 GOSUB 7000
- 2530 IF BF$="1" THEN 2880
- 2540 IF BF$="2" THEN 4700
- 2550 IF BF$="3" THEN 5550
- 2560 IF BF$="4" THEN 2050
- 2570 PRINT CHR$(7)
- 2580 LOCATE 21,19
- 2590 PRINT "*** ILLEGAL SELECTION: TYPE 1, 2, 3 OR 4 ***"
- 2600 FOR I=1 TO 1500: NEXT I
- 2610 GOTO 2340
- 2620 REM *** INSTANTANEOUS MODEL MENU ***
- 2630 QRN=CALD
- 2635 IF QRN=1 THEN DV(2)=QP*1000:DF$(2)=MID$(STR$(DV(2)),2)
- 2640 CLS
- 2650 PRINT: PRINT: PRINT
- 2660 PRINT TAB(21); STRING$(40,"*")
- 2670 PRINT TAB(21); "*"; TAB(60); "*"
- 2680 PRINT TAB(21); "* INSTANTANEOUS RELEASE MODEL *"
- 2690 PRINT TAB(21); "*"; TAB(60); "*"
- 2700 PRINT TAB(21); STRING$(40,"*")
- 2710 PRINT: PRINT: PRINT
- 2720 PRINT TAB(26); "1. Calculate Concentration.":PRINT
- 2730 PRINT TAB(26); "2. Calculate Caution Distance.":PRINT
- 2740 PRINT TAB(26); "3. Quit (Exit to Simple Gas Menu).":PRINT
- 2750 PRINT: PRINT
- 2760 PRINT TAB(29); "SELECT =====>"
- 2770 PPR=20:PPC=44
- 2780 GOSUB 7000
- 2800 IF BF$="1" THEN 3810
- 2810 IF BF$="2" THEN 5130
- 2820 IF BF$="3" THEN 2050
- 2830 PRINT CHR$(7)
- 2840 LOCATE 20,19
- 2850 PRINT "*** ILLEGAL SELECTION: TYPE 1, 2 OR 3 ***"
- 2860 FOR I=1 TO 1500: NEXT I
- 2870 GOTO 2620
- 2880 REM ** CALCULATE CONCENTRATION ** continuous
- 2890 CLS
- 2895 SKIP=1:TLVS=0
- 2900 PRINT
- 2910 TITLE$="*** CALCULATE CONCENTRATION ***"
- 2915 PRINT TAB(24);TITLE$
- 2920 PRINT: PRINT
- 2925 MSG$(5)="DOWN-WIND DISTANCE:"
- 2930 SM = 7
- 2940 SO(1)=1: SO(2)=6: SO(3)=5: SO(4)=8
- 2950 SO(5)=9: SO(6)=10: SO(7)=7
- 2960 FOR I=1 TO SM
- 2970 K=SO(I)
- 2980 PRINT TAB(19); MSG$(SO(I)); TAB(53); UNIT$(SO(I),DU(K))
- 2990 PRINT
- 3000 NEXT I
- 3005 GOSUB 9600
- 3010 FOR J=1 TO SM
- 3020 PPR=J*2+3:PPC=40
- 3030 ID=SO(J)
- 3040 GOSUB 7330
- 3050 IF FLAG=1 THEN GOTO 2880
- 3060 IF FLAG=2 THEN GOTO 2340
- 3070 NEXT J
- 3075 GOSUB 9500
- 3080 IF DV(5) < DV(7)*DV(6) THEN 3110
- 3090 DV(3) = 0
-